
export interface Requirement {
    id?: number;
    roleCaseId: any;
    value: string;
}

export interface FailMode {
    id?: number;
    modeDesc: string;
    ctrlPlans: CtrlPlan[];
    isExpanded: boolean;
}

export interface CtrlPlan {
    id?: number;
    spec: string;
    capacityId: any;
    capacityCn: string;
    frequencyValues?: string[];
    reactionPlanValues?: string[];
    frequencies: Frequency[];
    reactionPlans: ReactionPlan[];
}

export interface Capacity {
    id?: number;
    cnDesc: string;
    enDesc?: string;
}

export interface Frequency {
    id?: number;
    cnDesc?: string;
    enDesc?: string;
}

export interface ReactionPlan {
    id?: number;
    cnDesc?: string;
    enDesc?: string;
}

export interface DtoCtrlPlan {
    cpId?:number;
    cpSpec?:string;
    capacityId?:number;
    capacityCn?:string;
    frequencyList?:Frequency[];
    reactionPlanList?:ReactionPlan[];
    ref?:any;
}

export interface DtoFailMode4requirementList {
    fmId?:number;
    fmDesc?:string;
    ctrlPlans:DtoCtrlPlan[];
    ref?:any;
}

export interface Department {
    id?: number;
    nameCn?: string;
}

export interface Role {
    id?: number;
    nameCn?: string;
}

export interface DtoDepartmentRole {
    id?: number;
    name?: string;
    dpmNameCn?:string;
}

export interface DtoRoleCase {
    id?: number;
    name?: string;
    roleCaseId?: number;
}

export interface DtoRequirementDetails {
    id?: number;
    roleCaseId?: number;
    value: string;
    department?:Department;
    role?: Role;
    business?: DtoRoleCase;
    dtoFailMode4requirementList:DtoFailMode4requirementList[];
}

export interface SelectorInfo {
    index?:number;
    desc?:string;
    option:any[];
    entity?:any;
}

export interface OptionField{
    key: string;
    value: string;
}

export interface ExternalField{
    key: string;
    value: string;
}

export interface ApiParams{
    searchKey: string;
    masterKey: string;
}
